﻿using Dora.Orm.Core.Domain.Entities;
using Dora.Services.AdminUser.Dto.QueryDto;
using Dora.Services.AdminUser.Dto.SaveDto;
using Dora.Services.AdminUser.Entities;
using Dora.Tools.Utility.Const;
using Surging.Core.Common;
using Surging.Core.CPlatform.Ioc;
using Surging.Core.CPlatform.Runtime.Server.Implementation.ServiceDiscovery.Attributes;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace Dora.Services.AdminUser.IApplication
{

    /// <summary>
    /// 大社产品类型/目的地保险产品默认排除供应商不绑定保险服务接口
    /// </summary>
    [ServiceBundle("api/" + DoraModuleName.AdminUser + "/{Service}")]
    public interface IOrgInsuranceExcludeService : IServiceKey
    {
        /// <summary>
        /// 批量新增
        /// </summary>
        /// <param name="OrgInsuranceExcludes"></param>
        /// <returns></returns>
        [Service(Date = "2019-11-6", Director = "焦石", Name = "批量新增")]
        Task<ResultDto<List<OrgInsuranceSupplierEntity>>> BatchInsertOrgInsuranceExcludes(List<OrgInsuranceSupplierEntity> OrgInsuranceExcludes);
        /// <summary>
        /// 批量修改
        /// </summary>
        /// <param name="OrgInsuranceExcludes"></param>
        /// <returns></returns>
        [Service(Date = "2019-11-6", Director = "焦石", Name = "批量修改")]
        Task<ResultDto<Boolean>> BatchUpdateOrgInsuranceExcludes(List<OrgInsuranceSupplierEntity> OrgInsuranceExcludes);

        /// <summary>
        /// 批量删除
        /// </summary>
        /// <param name="OrgInsuranceExcludes"></param>
        /// <returns></returns>
        [Service(Date = "2019-11-6", Director = "焦石", Name = "批量删除")]
        Task<bool> BatchDelOrgInsuranceExcludes(List<OrgInsuranceSupplierEntity> OrgInsuranceExcludes);

        /// <summary>
        /// 根据OrgId获取
        /// </summary>
        /// <param name="orgId"></param>
        /// <param name="BindType"></param>
        /// <param name="BindId"></param>
        /// <returns></returns>
        [Service(Date = "2019-11-6", Director = "焦石", Name = "根据OrgId获取")]
        Task<List<OrgInsuranceSupplierSaveDto>> GetAllByOrgId(int orgId, int BindType, int BindId);

        /// <summary>
        /// 批量新增
        /// </summary>
        /// <param name="OrgInsuranceExcludes"></param>
        /// <returns></returns>
        [Service(Date = "2019-11-6", Director = "焦石", Name = "批量新增")]
        Task<ResultDto<List<OrgInsuranceSupplierAreaEntity>>> BatchInsertOrgInsuranceSupplierAreas(List<OrgInsuranceSupplierAreaEntity> OrgInsuranceExcludes);
        /// <summary>
        /// 批量删除
        /// </summary>
        /// <param name="OrgInsuranceExcludes"></param>
        /// <returns></returns>
        [Service(Date = "2019-11-6", Director = "焦石", Name = "批量删除")]
        Task<bool> BatchDelOrgInsuranceSupplierAreas(List<OrgInsuranceSupplierAreaEntity> OrgInsuranceExcludes);
    }
}